<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.5"/>
<title>xilskey: ZynqMP EFUSE PS</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="navtree.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="resize.js"></script>
<script type="text/javascript" src="navtree.js"></script>
<script type="text/javascript">
  $(document).ready(initResizable);
  $(window).load(resizeHeight);
</script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
<link href="HTML_custom.css" rel="stylesheet" type="text/css"/>
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
 <tbody>
 <tr style="height: 56px;">
  <td id="projectlogo"><img alt="Logo" src="xlogo_bg.png"/></td>
  <td style="padding-left: 0.5em;">
   <div id="projectname">xilskey
   </div>
   <div id="projectbrief">Vitis Drivers API Documentation</div>
  </td>
 </tr>
 </tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.5 -->
  <div id="navrow1" class="tabs">
    <ul class="tablist">
      <li><a href="index.html"><span>Overview</span></a></li>
      <li><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
      <li><a href="globals.html"><span>APIs</span></a></li>
      <li><a href="files.html"><span>File&#160;List</span></a></li>
    </ul>
  </div>
</div><!-- top -->
<div id="side-nav" class="ui-resizable side-nav-resizable">
  <div id="nav-tree">
    <div id="nav-tree-contents">
      <div id="nav-sync" class="sync"></div>
    </div>
  </div>
  <div id="splitbar" style="-moz-user-select:none;"
       class="ui-resizable-handle">
  </div>
</div>
<script type="text/javascript">
$(document).ready(function(){initNavTree('group__xilskey__zynqmp__efuse.html','');});
</script>
<div id="doc-content">
<div class="header">
  <div class="summary">
<a href="#func-members">Functions</a>  </div>
  <div class="headertitle">
<div class="title">ZynqMP EFUSE PS</div>  </div>
</div><!--header-->
<div class="contents">
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
Functions</h2></td></tr>
<tr class="memitem:ga1456bb1e5601881e5064de0adcfc999e"><td class="memItemLeft" align="right" valign="top">u32&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__xilskey__zynqmp__efuse.html#ga1456bb1e5601881e5064de0adcfc999e">XilSKey_ZynqMp_EfusePs_CheckAesKeyCrc</a> (u32 CrcValue)</td></tr>
<tr class="memdesc:ga1456bb1e5601881e5064de0adcfc999e"><td class="mdescLeft">&#160;</td><td class="mdescRight">This function performs the CRC check of AES key.  <a href="#ga1456bb1e5601881e5064de0adcfc999e">More...</a><br/></td></tr>
<tr class="separator:ga1456bb1e5601881e5064de0adcfc999e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga6e3922cb096a5f9d79ca4ebb3080ecae"><td class="memItemLeft" align="right" valign="top">u32&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__xilskey__zynqmp__efuse.html#ga6e3922cb096a5f9d79ca4ebb3080ecae">XilSKey_ZynqMp_EfusePs_ReadUserFuse</a> (u32 *UseFusePtr, u8 UserFuse_Num, u8 ReadOption)</td></tr>
<tr class="memdesc:ga6e3922cb096a5f9d79ca4ebb3080ecae"><td class="mdescLeft">&#160;</td><td class="mdescRight">This function is used to read a user fuse from the eFUSE or cache.  <a href="#ga6e3922cb096a5f9d79ca4ebb3080ecae">More...</a><br/></td></tr>
<tr class="separator:ga6e3922cb096a5f9d79ca4ebb3080ecae"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga56fb70c1fe6c73dc49f0a4366b891efe"><td class="memItemLeft" align="right" valign="top">u32&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__xilskey__zynqmp__efuse.html#ga56fb70c1fe6c73dc49f0a4366b891efe">XilSKey_ZynqMp_EfusePs_ReadPpk0Hash</a> (u32 *Ppk0Hash, u8 ReadOption)</td></tr>
<tr class="memdesc:ga56fb70c1fe6c73dc49f0a4366b891efe"><td class="mdescLeft">&#160;</td><td class="mdescRight">This function is used to read the PPK0 hash from an eFUSE or eFUSE cache.  <a href="#ga56fb70c1fe6c73dc49f0a4366b891efe">More...</a><br/></td></tr>
<tr class="separator:ga56fb70c1fe6c73dc49f0a4366b891efe"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga2d6c621edaf9dc92652e650a6faceaf9"><td class="memItemLeft" align="right" valign="top">u32&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__xilskey__zynqmp__efuse.html#ga2d6c621edaf9dc92652e650a6faceaf9">XilSKey_ZynqMp_EfusePs_ReadPpk1Hash</a> (u32 *Ppk1Hash, u8 ReadOption)</td></tr>
<tr class="memdesc:ga2d6c621edaf9dc92652e650a6faceaf9"><td class="mdescLeft">&#160;</td><td class="mdescRight">This function is used to read the PPK1 hash from eFUSE or cache.  <a href="#ga2d6c621edaf9dc92652e650a6faceaf9">More...</a><br/></td></tr>
<tr class="separator:ga2d6c621edaf9dc92652e650a6faceaf9"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gaf32df4375d96c29c860c68670fecba41"><td class="memItemLeft" align="right" valign="top">u32&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__xilskey__zynqmp__efuse.html#gaf32df4375d96c29c860c68670fecba41">XilSKey_ZynqMp_EfusePs_ReadSpkId</a> (u32 *SpkId, u8 ReadOption)</td></tr>
<tr class="memdesc:gaf32df4375d96c29c860c68670fecba41"><td class="mdescLeft">&#160;</td><td class="mdescRight">This function is used to read SPKID from eFUSE or cache based on user's read option.  <a href="#gaf32df4375d96c29c860c68670fecba41">More...</a><br/></td></tr>
<tr class="separator:gaf32df4375d96c29c860c68670fecba41"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga4ce06d6fa81a7374a6bc03c566303a5f"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__xilskey__zynqmp__efuse.html#ga4ce06d6fa81a7374a6bc03c566303a5f">XilSKey_ZynqMp_EfusePs_ReadDna</a> (u32 *DnaRead)</td></tr>
<tr class="memdesc:ga4ce06d6fa81a7374a6bc03c566303a5f"><td class="mdescLeft">&#160;</td><td class="mdescRight">This function is used to read DNA from eFUSE.  <a href="#ga4ce06d6fa81a7374a6bc03c566303a5f">More...</a><br/></td></tr>
<tr class="separator:ga4ce06d6fa81a7374a6bc03c566303a5f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gafe8ae7aba73e1e4b667aed0bad8f64aa"><td class="memItemLeft" align="right" valign="top">u32&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__xilskey__zynqmp__efuse.html#gafe8ae7aba73e1e4b667aed0bad8f64aa">XilSKey_ZynqMp_EfusePs_ReadSecCtrlBits</a> (XilSKey_SecCtrlBits *ReadBackSecCtrlBits, u8 ReadOption)</td></tr>
<tr class="memdesc:gafe8ae7aba73e1e4b667aed0bad8f64aa"><td class="mdescLeft">&#160;</td><td class="mdescRight">This function is used to read the PS eFUSE secure control bits from cache or eFUSE based on user input provided.  <a href="#gafe8ae7aba73e1e4b667aed0bad8f64aa">More...</a><br/></td></tr>
<tr class="separator:gafe8ae7aba73e1e4b667aed0bad8f64aa"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gaba4a03dfa30f51139e6db70eac6583be"><td class="memItemLeft" align="right" valign="top">u32&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__xilskey__zynqmp__efuse.html#gaba4a03dfa30f51139e6db70eac6583be">XilSKey_ZynqMp_EfusePs_CacheLoad</a> (void)</td></tr>
<tr class="memdesc:gaba4a03dfa30f51139e6db70eac6583be"><td class="mdescLeft">&#160;</td><td class="mdescRight">This function reloads the cache of eFUSE so that can be directly read from cache.  <a href="#gaba4a03dfa30f51139e6db70eac6583be">More...</a><br/></td></tr>
<tr class="separator:gaba4a03dfa30f51139e6db70eac6583be"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga5b46f3a03d5163f08b7782f669a78748"><td class="memItemLeft" align="right" valign="top">u32&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__xilskey__zynqmp__efuse.html#ga5b46f3a03d5163f08b7782f669a78748">XilSKey_ZynqMp_EfusePs_Write</a> (XilSKey_ZynqMpEPs *InstancePtr)</td></tr>
<tr class="memdesc:ga5b46f3a03d5163f08b7782f669a78748"><td class="mdescLeft">&#160;</td><td class="mdescRight">This function is used to program the PS eFUSE of ZynqMP, based on user inputs.  <a href="#ga5b46f3a03d5163f08b7782f669a78748">More...</a><br/></td></tr>
<tr class="separator:ga5b46f3a03d5163f08b7782f669a78748"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gaf92ce5c0ea8ffaa5e15fc9125ae3363f"><td class="memItemLeft" align="right" valign="top">u32&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__xilskey__zynqmp__efuse.html#gaf92ce5c0ea8ffaa5e15fc9125ae3363f">XilSkey_ZynqMpEfuseAccess</a> (const u32 AddrHigh, const u32 AddrLow)</td></tr>
<tr class="memdesc:gaf92ce5c0ea8ffaa5e15fc9125ae3363f"><td class="mdescLeft">&#160;</td><td class="mdescRight">This function is used by PMUFW IPI call handler for programming eFUSE.  <a href="#gaf92ce5c0ea8ffaa5e15fc9125ae3363f">More...</a><br/></td></tr>
<tr class="separator:gaf92ce5c0ea8ffaa5e15fc9125ae3363f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga32901f95760a2e693f484f5a57d1ad06"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__xilskey__zynqmp__efuse.html#ga32901f95760a2e693f484f5a57d1ad06">XilSKey_ZynqMp_EfusePs_SetTimerValues</a> (void)</td></tr>
<tr class="memdesc:ga32901f95760a2e693f484f5a57d1ad06"><td class="mdescLeft">&#160;</td><td class="mdescRight">This function sets timers for programming and reading from eFUSE.  <a href="#ga32901f95760a2e693f484f5a57d1ad06">More...</a><br/></td></tr>
<tr class="separator:ga32901f95760a2e693f484f5a57d1ad06"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga5ccf425dc11a9659dd31419233c1382b"><td class="memItemLeft" align="right" valign="top">u32&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__xilskey__zynqmp__efuse.html#ga5ccf425dc11a9659dd31419233c1382b">XilSKey_ZynqMp_EfusePs_ReadRow</a> (u8 Row, XskEfusePs_Type EfuseType, u32 *RowData)</td></tr>
<tr class="memdesc:ga5ccf425dc11a9659dd31419233c1382b"><td class="mdescLeft">&#160;</td><td class="mdescRight">This function returns particular row data directly from eFUSE array.  <a href="#ga5ccf425dc11a9659dd31419233c1382b">More...</a><br/></td></tr>
<tr class="separator:ga5ccf425dc11a9659dd31419233c1382b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga0bbd694e7fdef850812aeccbf6da42a8"><td class="memItemLeft" align="right" valign="top">u32&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__xilskey__zynqmp__efuse.html#ga0bbd694e7fdef850812aeccbf6da42a8">XilSKey_ZynqMp_EfusePs_SetWriteConditions</a> (void)</td></tr>
<tr class="memdesc:ga0bbd694e7fdef850812aeccbf6da42a8"><td class="mdescLeft">&#160;</td><td class="mdescRight">This function sets all the required parameters to program eFUSE array.  <a href="#ga0bbd694e7fdef850812aeccbf6da42a8">More...</a><br/></td></tr>
<tr class="separator:ga0bbd694e7fdef850812aeccbf6da42a8"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga481698e87679ed2fbabb51ae433e2998"><td class="memItemLeft" align="right" valign="top">u32&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__xilskey__zynqmp__efuse.html#ga481698e87679ed2fbabb51ae433e2998">XilSKey_ZynqMp_EfusePs_WriteAndVerifyBit</a> (u8 Row, u8 Column, XskEfusePs_Type EfuseType)</td></tr>
<tr class="memdesc:ga481698e87679ed2fbabb51ae433e2998"><td class="mdescLeft">&#160;</td><td class="mdescRight">This function programs and verifies the particular bit of eFUSE array.  <a href="#ga481698e87679ed2fbabb51ae433e2998">More...</a><br/></td></tr>
<tr class="separator:ga481698e87679ed2fbabb51ae433e2998"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gabbf6b819a248562326af345bd43947c9"><td class="memItemLeft" align="right" valign="top">u32&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__xilskey__zynqmp__efuse.html#gabbf6b819a248562326af345bd43947c9">XilSKey_ZynqMp_EfusePs_Init</a> (void)</td></tr>
<tr class="memdesc:gabbf6b819a248562326af345bd43947c9"><td class="mdescLeft">&#160;</td><td class="mdescRight">This function initializes sysmonpsu driver.  <a href="#gabbf6b819a248562326af345bd43947c9">More...</a><br/></td></tr>
<tr class="separator:gabbf6b819a248562326af345bd43947c9"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga5467284f0486d3afa7953eb51876757b"><td class="memItemLeft" align="right" valign="top">u32&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__xilskey__zynqmp__efuse.html#ga5467284f0486d3afa7953eb51876757b">XilSKey_ZynqMp_EfusePs_CheckForZeros</a> (u8 RowStart, u8 RowEnd, XskEfusePs_Type EfuseType)</td></tr>
<tr class="memdesc:ga5467284f0486d3afa7953eb51876757b"><td class="mdescLeft">&#160;</td><td class="mdescRight">This function is used verify eFUSE keys for Zeros.  <a href="#ga5467284f0486d3afa7953eb51876757b">More...</a><br/></td></tr>
<tr class="separator:ga5467284f0486d3afa7953eb51876757b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga5b392432af864665cf95a540ab576388"><td class="memItemLeft" align="right" valign="top">u32&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__xilskey__zynqmp__efuse.html#ga5b392432af864665cf95a540ab576388">XilSKey_ZynqMp_EfusePs_WritePufHelprData</a> (const XilSKey_Puf *InstancePtr)</td></tr>
<tr class="memdesc:ga5b392432af864665cf95a540ab576388"><td class="mdescLeft">&#160;</td><td class="mdescRight">This function programs the PS eFUSEs with the PUF helper data.  <a href="#ga5b392432af864665cf95a540ab576388">More...</a><br/></td></tr>
<tr class="separator:ga5b392432af864665cf95a540ab576388"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga244ec0ae43d34ee6500c06dd91f9d372"><td class="memItemLeft" align="right" valign="top">u32&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__xilskey__zynqmp__efuse.html#ga244ec0ae43d34ee6500c06dd91f9d372">XilSKey_ZynqMp_EfusePs_ReadPufHelprData</a> (u32 *Address)</td></tr>
<tr class="memdesc:ga244ec0ae43d34ee6500c06dd91f9d372"><td class="mdescLeft">&#160;</td><td class="mdescRight">This function reads the PUF helper data from eFUSE.  <a href="#ga244ec0ae43d34ee6500c06dd91f9d372">More...</a><br/></td></tr>
<tr class="separator:ga244ec0ae43d34ee6500c06dd91f9d372"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gaf1587f5d17256fdbca55efa1cc0eeac0"><td class="memItemLeft" align="right" valign="top">u32&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__xilskey__zynqmp__efuse.html#gaf1587f5d17256fdbca55efa1cc0eeac0">XilSKey_ZynqMp_EfusePs_WritePufChash</a> (const XilSKey_Puf *InstancePtr)</td></tr>
<tr class="memdesc:gaf1587f5d17256fdbca55efa1cc0eeac0"><td class="mdescLeft">&#160;</td><td class="mdescRight">This function programs eFUSE with CHash value.  <a href="#gaf1587f5d17256fdbca55efa1cc0eeac0">More...</a><br/></td></tr>
<tr class="separator:gaf1587f5d17256fdbca55efa1cc0eeac0"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gaea3d5e3e09a52ed2a9a3027c065cca23"><td class="memItemLeft" align="right" valign="top">u32&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__xilskey__zynqmp__efuse.html#gaea3d5e3e09a52ed2a9a3027c065cca23">XilSKey_ZynqMp_EfusePs_ReadPufChash</a> (u32 *Address, u8 ReadOption)</td></tr>
<tr class="memdesc:gaea3d5e3e09a52ed2a9a3027c065cca23"><td class="mdescLeft">&#160;</td><td class="mdescRight">This function reads eFUSE PUF CHash data from the eFUSE array or cache based on the user read option.  <a href="#gaea3d5e3e09a52ed2a9a3027c065cca23">More...</a><br/></td></tr>
<tr class="separator:gaea3d5e3e09a52ed2a9a3027c065cca23"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga67de13526ea1502e25b09f80094f2246"><td class="memItemLeft" align="right" valign="top">u32&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__xilskey__zynqmp__efuse.html#ga67de13526ea1502e25b09f80094f2246">XilSKey_ZynqMp_EfusePs_WritePufAux</a> (const XilSKey_Puf *InstancePtr)</td></tr>
<tr class="memdesc:ga67de13526ea1502e25b09f80094f2246"><td class="mdescLeft">&#160;</td><td class="mdescRight">This function programs eFUSE PUF auxiliary data.  <a href="#ga67de13526ea1502e25b09f80094f2246">More...</a><br/></td></tr>
<tr class="separator:ga67de13526ea1502e25b09f80094f2246"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gad1be2e29f7eba2e556ac69870cd2e028"><td class="memItemLeft" align="right" valign="top">u32&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__xilskey__zynqmp__efuse.html#gad1be2e29f7eba2e556ac69870cd2e028">XilSKey_ZynqMp_EfusePs_ReadPufAux</a> (u32 *Address, u8 ReadOption)</td></tr>
<tr class="memdesc:gad1be2e29f7eba2e556ac69870cd2e028"><td class="mdescLeft">&#160;</td><td class="mdescRight">This function reads eFUSE PUF auxiliary data from eFUSE array or cache based on user read option.  <a href="#gad1be2e29f7eba2e556ac69870cd2e028">More...</a><br/></td></tr>
<tr class="separator:gad1be2e29f7eba2e556ac69870cd2e028"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga9491848827417a1fb9e25947487e27bf"><td class="memItemLeft" align="right" valign="top">u32&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__xilskey__zynqmp__efuse.html#ga9491848827417a1fb9e25947487e27bf">XilSKey_Write_Puf_EfusePs_SecureBits</a> (const XilSKey_Puf_Secure *WriteSecureBits)</td></tr>
<tr class="memdesc:ga9491848827417a1fb9e25947487e27bf"><td class="mdescLeft">&#160;</td><td class="mdescRight">This function programs the eFUSE PUF secure bits.  <a href="#ga9491848827417a1fb9e25947487e27bf">More...</a><br/></td></tr>
<tr class="separator:ga9491848827417a1fb9e25947487e27bf"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga64b5db9c2f22e5e5092d58ac7ad4d7f9"><td class="memItemLeft" align="right" valign="top">u32&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__xilskey__zynqmp__efuse.html#ga64b5db9c2f22e5e5092d58ac7ad4d7f9">XilSKey_Read_Puf_EfusePs_SecureBits</a> (XilSKey_Puf_Secure *SecureBitsRead, u8 ReadOption)</td></tr>
<tr class="memdesc:ga64b5db9c2f22e5e5092d58ac7ad4d7f9"><td class="mdescLeft">&#160;</td><td class="mdescRight">This function is used to read the PS eFUSE PUF secure bits from cache or from eFUSE array.  <a href="#ga64b5db9c2f22e5e5092d58ac7ad4d7f9">More...</a><br/></td></tr>
<tr class="separator:ga64b5db9c2f22e5e5092d58ac7ad4d7f9"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga4f7dae2403511abb09eb0504751f35f4"><td class="memItemLeft" align="right" valign="top">u32&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__xilskey__zynqmp__efuse.html#ga4f7dae2403511abb09eb0504751f35f4">XilSKey_Puf_Registration</a> (XilSKey_Puf *InstancePtr)</td></tr>
<tr class="memdesc:ga4f7dae2403511abb09eb0504751f35f4"><td class="mdescLeft">&#160;</td><td class="mdescRight">This function performs registration of PUF which generates a new KEK and associated CHash, Auxiliary and PUF-syndrome data which are unique for each silicon.  <a href="#ga4f7dae2403511abb09eb0504751f35f4">More...</a><br/></td></tr>
<tr class="separator:ga4f7dae2403511abb09eb0504751f35f4"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gaccdc46658f23f994c89596961a8580c7"><td class="memItemLeft" align="right" valign="top">u32&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__xilskey__zynqmp__efuse.html#gaccdc46658f23f994c89596961a8580c7">XilSKey_Puf_Regeneration</a> (const XilSKey_Puf *InstancePtr)</td></tr>
<tr class="memdesc:gaccdc46658f23f994c89596961a8580c7"><td class="mdescLeft">&#160;</td><td class="mdescRight">This function regenerates the PUF data so that the PUF's output can be used as the key source to the AES-GCM hardware cryptographic engine.  <a href="#gaccdc46658f23f994c89596961a8580c7">More...</a><br/></td></tr>
<tr class="separator:gaccdc46658f23f994c89596961a8580c7"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<h2 class="groupheader">Function Documentation</h2>
<a class="anchor" id="gaccdc46658f23f994c89596961a8580c7"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">u32 XilSKey_Puf_Regeneration </td>
          <td>(</td>
          <td class="paramtype">const XilSKey_Puf *&#160;</td>
          <td class="paramname"><em>InstancePtr</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>This function regenerates the PUF data so that the PUF's output can be used as the key source to the AES-GCM hardware cryptographic engine. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">InstancePtr</td><td>is a pointer to the XilSKey_Puf instance.</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd><ul>
<li>XST_SUCCESS if regeneration was successful.</li>
<li>ERROR if regeneration was unsuccessful </li>
</ul>
</dd></dl>

<p>References <a class="el" href="xilskey__eps__zynqmp__puf_8c.html#ae173a76c6c5c1accfaae2131821b7818">XILSKEY_PUF_KEK_REGEN_RDY_TIMEOUT</a>, <a class="el" href="group__xilskey__zynqmp__efuse.html#gaea3d5e3e09a52ed2a9a3027c065cca23">XilSKey_ZynqMp_EfusePs_ReadPufChash()</a>, <a class="el" href="group__xilskey__psefuse__error__codes.html#gga35d67e0a9db73e1fa64262f5eb8f9d6aabf26a924fc71ce21326d35f8b9a3f618">XSK_EFUSEPS_ERROR_PUF_ACCESS</a>, <a class="el" href="group__xilskey__psefuse__error__codes.html#gga35d67e0a9db73e1fa64262f5eb8f9d6aa7493aa3e36b95f1adad1714ff264bde0">XSK_EFUSEPS_ERROR_PUF_INVALID_REQUEST</a>, and <a class="el" href="xilskey__eps__zynqmp__hw_8h.html#a22e91434be8027511030a0e8acbc103f">XSK_ZYNQMP_CSU_BASEADDR</a>.</p>

</div>
</div>
<a class="anchor" id="ga4f7dae2403511abb09eb0504751f35f4"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">u32 XilSKey_Puf_Registration </td>
          <td>(</td>
          <td class="paramtype">XilSKey_Puf *&#160;</td>
          <td class="paramname"><em>InstancePtr</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>This function performs registration of PUF which generates a new KEK and associated CHash, Auxiliary and PUF-syndrome data which are unique for each silicon. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">InstancePtr</td><td>Pointer to the XilSKey_Puf instance.</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd><ul>
<li>XST_SUCCESS if registration/re-registration was successful.</li>
<li>ERROR if registration was unsuccessful</li>
</ul>
</dd></dl>
<dl class="section note"><dt>Note</dt><dd>With the help of generated PUF syndrome data, it will be possible to re-generate same PUF KEK. </dd></dl>
<p>Request PUF to register. This will trigger an interrupt to CSUROM</p>

<p>References <a class="el" href="group__xilskey__psefuse__error__codes.html#gga35d67e0a9db73e1fa64262f5eb8f9d6aac840ba4043d600d19b7699544a2f461f">XSK_EFUSEPS_ERROR_PUF_DATA_OVERFLOW</a>, <a class="el" href="group__xilskey__psefuse__error__codes.html#gga35d67e0a9db73e1fa64262f5eb8f9d6aa9e49ab4ac302de7f5e31c12e97cf2ab0">XSK_EFUSEPS_ERROR_PUF_DATA_UNDERFLOW</a>, <a class="el" href="group__xilskey__psefuse__error__codes.html#gga35d67e0a9db73e1fa64262f5eb8f9d6aa8cc0fae305d80ef7c765388160da60ad">XSK_EFUSEPS_ERROR_PUF_INVALID_REG_MODE</a>, <a class="el" href="group__xilskey__psefuse__error__codes.html#gga35d67e0a9db73e1fa64262f5eb8f9d6aad68fd75ddf9629a4acaa5c42a7116d18">XSK_EFUSEPS_ERROR_PUF_TIMEOUT</a>, <a class="el" href="xilskey__eps__zynqmp__puf_8c.html#a61995a6593f2767e9a52586c1d69a822aeda9b548d47505ea751e58ad29e01358">XSK_EFUSEPS_PUF_REGISTRATION_COMPLETE</a>, <a class="el" href="xilskey__eps__zynqmp__puf_8c.html#a61995a6593f2767e9a52586c1d69a822abed240fdfae746394ccad3f8b278ccab">XSK_EFUSEPS_PUF_REGISTRATION_STARTED</a>, and <a class="el" href="xilskey__eps__zynqmp__hw_8h.html#a22e91434be8027511030a0e8acbc103f">XSK_ZYNQMP_CSU_BASEADDR</a>.</p>

<p>Referenced by <a class="el" href="xilskey__puf__registration__example_8c.html#ae66f6b31b5ad750f1fe042a706a4e3d4">main()</a>.</p>

</div>
</div>
<a class="anchor" id="ga64b5db9c2f22e5e5092d58ac7ad4d7f9"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">u32 XilSKey_Read_Puf_EfusePs_SecureBits </td>
          <td>(</td>
          <td class="paramtype">XilSKey_Puf_Secure *&#160;</td>
          <td class="paramname"><em>SecureBitsRead</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">u8&#160;</td>
          <td class="paramname"><em>ReadOption</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>This function is used to read the PS eFUSE PUF secure bits from cache or from eFUSE array. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">SecureBitsRead</td><td>- Pointer to the XilSKey_Puf_Secure structure which holds the read eFUSE secure bits from the PUF. </td></tr>
    <tr><td class="paramname">ReadOption</td><td>- Indicates whether or not to read from the actual eFUSE array or from the eFUSE cache.<ul>
<li>0(XSK_EFUSEPS_READ_FROM_CACHE) Reads from cache</li>
<li>1(XSK_EFUSEPS_READ_FROM_EFUSE) Reads from eFUSE array</li>
</ul>
</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd><ul>
<li>XST_SUCCESS if reads successfully.</li>
<li>Errorcode on failure. </li>
</ul>
</dd></dl>

<p>References <a class="el" href="group__xilskey__psefuse__error__codes.html#gga35d67e0a9db73e1fa64262f5eb8f9d6aaa3e0ccc70663fc7ab1bcbc4308e48163">XSK_EFUSEPS_RD_FROM_EFUSE_NOT_ALLOWED</a>.</p>

<p>Referenced by <a class="el" href="xilskey__puf__registration__example_8c.html#ae66f6b31b5ad750f1fe042a706a4e3d4">main()</a>.</p>

</div>
</div>
<a class="anchor" id="ga9491848827417a1fb9e25947487e27bf"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">u32 XilSKey_Write_Puf_EfusePs_SecureBits </td>
          <td>(</td>
          <td class="paramtype">const XilSKey_Puf_Secure *&#160;</td>
          <td class="paramname"><em>WriteSecureBits</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>This function programs the eFUSE PUF secure bits. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">WriteSecureBits</td><td>Pointer to the XilSKey_Puf_Secure structure</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd><ul>
<li>XST_SUCCESS if eFUSE PUF secure bits are programmed successfully.</li>
<li>Errorcode on failure. </li>
</ul>
</dd></dl>

<p>References <a class="el" href="group__xilskey__zynqmp__efuse.html#gaba4a03dfa30f51139e6db70eac6583be">XilSKey_ZynqMp_EfusePs_CacheLoad()</a>, <a class="el" href="group__xilskey__zynqmp__efuse.html#ga0bbd694e7fdef850812aeccbf6da42a8">XilSKey_ZynqMp_EfusePs_SetWriteConditions()</a>, <a class="el" href="group__xilskey__zynqmp__efuse.html#ga481698e87679ed2fbabb51ae433e2998">XilSKey_ZynqMp_EfusePs_WriteAndVerifyBit()</a>, <a class="el" href="group__xilskey__psefuse__error__codes.html#gga35d67e0a9db73e1fa64262f5eb8f9d6aa51b19122bd2d929bac2c23850fd31f43">XSK_EFUSEPS_ERROR_CONTROLLER_LOCK</a>, <a class="el" href="group__xilskey__psefuse__error__codes.html#gga35d67e0a9db73e1fa64262f5eb8f9d6aaba96fe0fc4b478d5e2f1440c7b8b1c6c">XSK_EFUSEPS_ERROR_WRITE_PUF_RESERVED_BIT</a>, <a class="el" href="group__xilskey__psefuse__error__codes.html#gga35d67e0a9db73e1fa64262f5eb8f9d6aadd63eed9124336e7c533a4cd61bcd42b">XSK_EFUSEPS_ERROR_WRITE_PUF_SYN_INVLD</a>, <a class="el" href="group__xilskey__psefuse__error__codes.html#gga35d67e0a9db73e1fa64262f5eb8f9d6aac3e4d7e897e349f879d6089308c53db2">XSK_EFUSEPS_ERROR_WRITE_PUF_SYN_REG_DIS</a>, and <a class="el" href="group__xilskey__psefuse__error__codes.html#gga35d67e0a9db73e1fa64262f5eb8f9d6aaaae389f21cedce3366b4857b0db9d962">XSK_EFUSEPS_ERROR_WRITE_PUF_SYN_WRLK</a>.</p>

<p>Referenced by <a class="el" href="xilskey__puf__registration__example_8c.html#ae66f6b31b5ad750f1fe042a706a4e3d4">main()</a>.</p>

</div>
</div>
<a class="anchor" id="gaba4a03dfa30f51139e6db70eac6583be"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">u32 XilSKey_ZynqMp_EfusePs_CacheLoad </td>
          <td>(</td>
          <td class="paramtype">void&#160;</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>This function reloads the cache of eFUSE so that can be directly read from cache. </p>
<dl class="section return"><dt>Returns</dt><dd><ul>
<li>XST_SUCCESS on successful cache reload</li>
<li>ErrorCode on failure</li>
</ul>
</dd></dl>
<dl class="section note"><dt>Note</dt><dd>Not recommended to call this API frequently, if this API is called all the cache memory is reloded by reading eFUSE array, reading eFUSE bit multiple times may diminish the life time. </dd></dl>

<p>References <a class="el" href="group__xilskey__psefuse__error__codes.html#gga35d67e0a9db73e1fa64262f5eb8f9d6aaf7d4f28944a4d6037b6b75661e3a65be">XSK_EFUSEPS_ERROR_CACHE_LOAD</a>, <a class="el" href="xilskey__eps__zynqmp__hw_8h.html#a9600c88345f2ca86156d134c33e7ae62">XSK_ZYNQMP_EFUSEPS_BASEADDR</a>, and <a class="el" href="xilskey__eps__zynqmp__hw_8h.html#aafff21d216364b94d98b63aa38193712">XSK_ZYNQMP_EFUSEPS_CACHE_LOAD_OFFSET</a>.</p>

<p>Referenced by <a class="el" href="group__xilskey__zynqmp__efuse.html#ga9491848827417a1fb9e25947487e27bf">XilSKey_Write_Puf_EfusePs_SecureBits()</a>, and <a class="el" href="group__xilskey__zynqmp__efuse.html#ga5b46f3a03d5163f08b7782f669a78748">XilSKey_ZynqMp_EfusePs_Write()</a>.</p>

</div>
</div>
<a class="anchor" id="ga1456bb1e5601881e5064de0adcfc999e"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">u32 XilSKey_ZynqMp_EfusePs_CheckAesKeyCrc </td>
          <td>(</td>
          <td class="paramtype">u32&#160;</td>
          <td class="paramname"><em>CrcValue</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>This function performs the CRC check of AES key. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">CrcValue</td><td>A 32 bit CRC value of an expected AES key.</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd><ul>
<li>XST_SUCCESS on successful CRC check.</li>
<li>ErrorCode on failure</li>
</ul>
</dd></dl>
<dl class="section note"><dt>Note</dt><dd>For Calculating the CRC of the AES key use the <a class="el" href="group__xilskey__cmn__crc.html#gaf973666d5d2787e571a17f6c12d6cd29" title="This function Calculates CRC value based on hexadecimal string passed. ">XilSKey_CrcCalculation()</a> function or <a class="el" href="group__xilskey__cmn__crc.html#ga0552daa4e1f376eaac1360aba6d23930" title="Calculates CRC value of the provided key. ">XilSkey_CrcCalculation_AesKey()</a> function </dd></dl>

<p>References <a class="el" href="group__xilskey__zynqmp__efuse.html#ga32901f95760a2e693f484f5a57d1ad06">XilSKey_ZynqMp_EfusePs_SetTimerValues()</a>, <a class="el" href="xilskey__eps__zynqmp__hw_8h.html#a9c9a3cf5fac3eb7cca38c68a9b95ca98">XSK_ZYNQMP_EFUSEPS_AES_CRC_OFFSET</a>, and <a class="el" href="xilskey__eps__zynqmp__hw_8h.html#a9600c88345f2ca86156d134c33e7ae62">XSK_ZYNQMP_EFUSEPS_BASEADDR</a>.</p>

<p>Referenced by <a class="el" href="group__xilskey__zynqmp__efuse.html#ga5b46f3a03d5163f08b7782f669a78748">XilSKey_ZynqMp_EfusePs_Write()</a>.</p>

</div>
</div>
<a class="anchor" id="ga5467284f0486d3afa7953eb51876757b"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">u32 XilSKey_ZynqMp_EfusePs_CheckForZeros </td>
          <td>(</td>
          <td class="paramtype">u8&#160;</td>
          <td class="paramname"><em>RowStart</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">u8&#160;</td>
          <td class="paramname"><em>RowEnd</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">XskEfusePs_Type&#160;</td>
          <td class="paramname"><em>EfuseType</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>This function is used verify eFUSE keys for Zeros. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">RowStart</td><td>is row number from which verification has to be started. </td></tr>
    <tr><td class="paramname">RowEnd</td><td>is row number till which verification has to be ended. </td></tr>
    <tr><td class="paramname">EfuseType</td><td>is the type of the eFUSE in which these rows reside.</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>XST_SUCCESS if keys are not programmed. Errorcode on failure. </dd></dl>

<p>References <a class="el" href="group__xilskey__zynqmp__efuse.html#ga5ccf425dc11a9659dd31419233c1382b">XilSKey_ZynqMp_EfusePs_ReadRow()</a>.</p>

</div>
</div>
<a class="anchor" id="gabbf6b819a248562326af345bd43947c9"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">u32 XilSKey_ZynqMp_EfusePs_Init </td>
          <td>(</td>
          <td class="paramtype">void&#160;</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>This function initializes sysmonpsu driver. </p>
<dl class="section return"><dt>Returns</dt><dd>XST_SUCCESS - On success ErrorCode - on Failure </dd></dl>

<p>References <a class="el" href="xilskey__utils_8c.html#ac23b7512fa6d7680514d181ef2a51963">XilSKey_EfusePs_XAdcInit()</a>.</p>

<p>Referenced by <a class="el" href="group__xilskey__zynqmp__efuse.html#ga5b46f3a03d5163f08b7782f669a78748">XilSKey_ZynqMp_EfusePs_Write()</a>, <a class="el" href="group__xilskey__zynqmp__efuse.html#ga67de13526ea1502e25b09f80094f2246">XilSKey_ZynqMp_EfusePs_WritePufAux()</a>, <a class="el" href="group__xilskey__zynqmp__efuse.html#gaf1587f5d17256fdbca55efa1cc0eeac0">XilSKey_ZynqMp_EfusePs_WritePufChash()</a>, and <a class="el" href="group__xilskey__zynqmp__efuse.html#ga5b392432af864665cf95a540ab576388">XilSKey_ZynqMp_EfusePs_WritePufHelprData()</a>.</p>

</div>
</div>
<a class="anchor" id="ga4ce06d6fa81a7374a6bc03c566303a5f"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void XilSKey_ZynqMp_EfusePs_ReadDna </td>
          <td>(</td>
          <td class="paramtype">u32 *&#160;</td>
          <td class="paramname"><em>DnaRead</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>This function is used to read DNA from eFUSE. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">DnaRead</td><td>Pointer to an array of 3 x u32 words which holds the readback DNA. </td></tr>
  </table>
  </dd>
</dl>

<p>References <a class="el" href="xilskey__eps__zynqmp__hw_8h.html#a9600c88345f2ca86156d134c33e7ae62">XSK_ZYNQMP_EFUSEPS_BASEADDR</a>, <a class="el" href="xilskey__eps__zynqmp__hw_8h.html#a7ce9334f0ef892afe93f49efd39c728c">XSK_ZYNQMP_EFUSEPS_DNA_0_OFFSET</a>, <a class="el" href="xilskey__eps__zynqmp__hw_8h.html#ac0d5b8edbb4b9b94b47f2d5c51202859">XSK_ZYNQMP_EFUSEPS_DNA_1_OFFSET</a>, and <a class="el" href="xilskey__eps__zynqmp__hw_8h.html#a82d1108699b1436943088d3a2e0b3585">XSK_ZYNQMP_EFUSEPS_DNA_2_OFFSET</a>.</p>

</div>
</div>
<a class="anchor" id="ga56fb70c1fe6c73dc49f0a4366b891efe"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">u32 XilSKey_ZynqMp_EfusePs_ReadPpk0Hash </td>
          <td>(</td>
          <td class="paramtype">u32 *&#160;</td>
          <td class="paramname"><em>Ppk0Hash</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">u8&#160;</td>
          <td class="paramname"><em>ReadOption</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>This function is used to read the PPK0 hash from an eFUSE or eFUSE cache. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">Ppk0Hash</td><td>A pointer to an array which holds the readback PPK0 hash. </td></tr>
    <tr><td class="paramname">ReadOption</td><td>Indicates whether or not to read from the actual eFUSE array or from the eFUSE cache.<ul>
<li>0(XSK_EFUSEPS_READ_FROM_CACHE) Reads from eFUSE cache</li>
<li>1(XSK_EFUSEPS_READ_FROM_EFUSE) Reads from eFUSE array</li>
</ul>
</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd><ul>
<li>XST_SUCCESS on successful read</li>
<li>ErrorCode on failure </li>
</ul>
</dd></dl>
<dl class="section note"><dt>Note</dt><dd>It is highly recommended to read from eFuse cache. Because reading from efuse may reduce the life of the efuse. And Cache reload is required for obtaining updated values for ReadOption 0. </dd></dl>

<p>References <a class="el" href="xilskey__utils_8c.html#a5c47bf0a861cbd2a3b6287b12bd633e5">XilSKey_EfusePs_ConvertBytesBeToLe()</a>, <a class="el" href="group__xilskey__psefuse__error__codes.html#gga35d67e0a9db73e1fa64262f5eb8f9d6aaa3e0ccc70663fc7ab1bcbc4308e48163">XSK_EFUSEPS_RD_FROM_EFUSE_NOT_ALLOWED</a>, <a class="el" href="xilskey__eps__zynqmp__hw_8h.html#a9600c88345f2ca86156d134c33e7ae62">XSK_ZYNQMP_EFUSEPS_BASEADDR</a>, and <a class="el" href="xilskey__eps__zynqmp__hw_8h.html#a7bd2195e6e359d3db88f2faa194191ba">XSK_ZYNQMP_EFUSEPS_PPK0_0_OFFSET</a>.</p>

<p>Referenced by <a class="el" href="group__xilskey__zynqmp__efuse.html#ga5b46f3a03d5163f08b7782f669a78748">XilSKey_ZynqMp_EfusePs_Write()</a>.</p>

</div>
</div>
<a class="anchor" id="ga2d6c621edaf9dc92652e650a6faceaf9"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">u32 XilSKey_ZynqMp_EfusePs_ReadPpk1Hash </td>
          <td>(</td>
          <td class="paramtype">u32 *&#160;</td>
          <td class="paramname"><em>Ppk1Hash</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">u8&#160;</td>
          <td class="paramname"><em>ReadOption</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>This function is used to read the PPK1 hash from eFUSE or cache. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">Ppk1Hash</td><td>Pointer to an array which holds the readback PPK1 hash. </td></tr>
    <tr><td class="paramname">ReadOption</td><td>Indicates whether or not to read from the actual eFUSE array or from the eFUSE cache.<ul>
<li>0(XSK_EFUSEPS_READ_FROM_CACHE) Reads from eFUSE cache</li>
<li>1(XSK_EFUSEPS_READ_FROM_EFUSE) Reads from eFUSE array</li>
</ul>
</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd><ul>
<li>XST_SUCCESS on successful read</li>
<li>ErrorCode on failure</li>
</ul>
</dd></dl>
<dl class="section note"><dt>Note</dt><dd>It is highly recommended to read from eFuse cache. Because reading from efuse may reduce the life of the efuse. And Cache reload is required for obtaining updated values for ReadOption 0. </dd></dl>

<p>References <a class="el" href="xilskey__utils_8c.html#a5c47bf0a861cbd2a3b6287b12bd633e5">XilSKey_EfusePs_ConvertBytesBeToLe()</a>, <a class="el" href="group__xilskey__psefuse__error__codes.html#gga35d67e0a9db73e1fa64262f5eb8f9d6aaa3e0ccc70663fc7ab1bcbc4308e48163">XSK_EFUSEPS_RD_FROM_EFUSE_NOT_ALLOWED</a>, <a class="el" href="xilskey__eps__zynqmp__hw_8h.html#a9600c88345f2ca86156d134c33e7ae62">XSK_ZYNQMP_EFUSEPS_BASEADDR</a>, and <a class="el" href="xilskey__eps__zynqmp__hw_8h.html#ac4ea8599e5560b0a055fa8278960deb0">XSK_ZYNQMP_EFUSEPS_PPK1_0_OFFSET</a>.</p>

<p>Referenced by <a class="el" href="group__xilskey__zynqmp__efuse.html#ga5b46f3a03d5163f08b7782f669a78748">XilSKey_ZynqMp_EfusePs_Write()</a>.</p>

</div>
</div>
<a class="anchor" id="gad1be2e29f7eba2e556ac69870cd2e028"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">u32 XilSKey_ZynqMp_EfusePs_ReadPufAux </td>
          <td>(</td>
          <td class="paramtype">u32 *&#160;</td>
          <td class="paramname"><em>Address</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">u8&#160;</td>
          <td class="paramname"><em>ReadOption</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>This function reads eFUSE PUF auxiliary data from eFUSE array or cache based on user read option. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">Address</td><td>Pointer which holds the read back value of PUF's auxiliary data. </td></tr>
    <tr><td class="paramname">ReadOption</td><td>Indicates whether or not to read from the actual eFUSE array or from the eFUSE cache.<ul>
<li>0(XSK_EFUSEPS_READ_FROM_CACHE) Reads from cache</li>
<li>1(XSK_EFUSEPS_READ_FROM_EFUSE) Reads from eFUSE array</li>
</ul>
</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd><ul>
<li>XST_SUCCESS if PUF auxiliary data is read successfully.</li>
<li>Errorcode on failure</li>
</ul>
</dd></dl>
<dl class="section note"><dt>Note</dt><dd>Cache reload is required for obtaining updated values for reading from cache. </dd></dl>

<p>References <a class="el" href="group__xilskey__psefuse__error__codes.html#gga35d67e0a9db73e1fa64262f5eb8f9d6aaa3e0ccc70663fc7ab1bcbc4308e48163">XSK_EFUSEPS_RD_FROM_EFUSE_NOT_ALLOWED</a>, <a class="el" href="xilskey__eps__zynqmp__hw_8h.html#a9600c88345f2ca86156d134c33e7ae62">XSK_ZYNQMP_EFUSEPS_BASEADDR</a>, and <a class="el" href="xilskey__eps__zynqmp__hw_8h.html#a148a851dfe5a8e5cc2cf5c544d53b1c1">XSK_ZYNQMP_EFUSEPS_PUF_MISC_OFFSET</a>.</p>

<p>Referenced by <a class="el" href="xilskey__puf__registration__example_8c.html#ae66f6b31b5ad750f1fe042a706a4e3d4">main()</a>, and <a class="el" href="group__xilskey__zynqmp__efuse.html#ga67de13526ea1502e25b09f80094f2246">XilSKey_ZynqMp_EfusePs_WritePufAux()</a>.</p>

</div>
</div>
<a class="anchor" id="gaea3d5e3e09a52ed2a9a3027c065cca23"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">u32 XilSKey_ZynqMp_EfusePs_ReadPufChash </td>
          <td>(</td>
          <td class="paramtype">u32 *&#160;</td>
          <td class="paramname"><em>Address</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">u8&#160;</td>
          <td class="paramname"><em>ReadOption</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>This function reads eFUSE PUF CHash data from the eFUSE array or cache based on the user read option. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">Address</td><td>Pointer which holds the read back value of the chash. </td></tr>
    <tr><td class="paramname">ReadOption</td><td>Indicates whether or not to read from the actual eFUSE array or from the eFUSE cache.<ul>
<li>0(XSK_EFUSEPS_READ_FROM_CACHE) Reads from cache</li>
<li>1(XSK_EFUSEPS_READ_FROM_EFUSE) Reads from eFUSE array</li>
</ul>
</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd><ul>
<li>XST_SUCCESS if programs successfully.</li>
<li>Errorcode on failure</li>
</ul>
</dd></dl>
<dl class="section note"><dt>Note</dt><dd>Cache reload is required for obtaining updated values for reading from cache.. </dd></dl>

<p>References <a class="el" href="group__xilskey__psefuse__error__codes.html#gga35d67e0a9db73e1fa64262f5eb8f9d6aaa3e0ccc70663fc7ab1bcbc4308e48163">XSK_EFUSEPS_RD_FROM_EFUSE_NOT_ALLOWED</a>, <a class="el" href="xilskey__eps__zynqmp__hw_8h.html#a9600c88345f2ca86156d134c33e7ae62">XSK_ZYNQMP_EFUSEPS_BASEADDR</a>, and <a class="el" href="xilskey__eps__zynqmp__hw_8h.html#a56e241b58e20d81f4e8e4864fdf3947a">XSK_ZYNQMP_EFUSEPS_PUF_CHASH_OFFSET</a>.</p>

<p>Referenced by <a class="el" href="xilskey__puf__registration__example_8c.html#ae66f6b31b5ad750f1fe042a706a4e3d4">main()</a>, <a class="el" href="group__xilskey__zynqmp__efuse.html#gaccdc46658f23f994c89596961a8580c7">XilSKey_Puf_Regeneration()</a>, and <a class="el" href="group__xilskey__zynqmp__efuse.html#gaf1587f5d17256fdbca55efa1cc0eeac0">XilSKey_ZynqMp_EfusePs_WritePufChash()</a>.</p>

</div>
</div>
<a class="anchor" id="ga244ec0ae43d34ee6500c06dd91f9d372"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">u32 XilSKey_ZynqMp_EfusePs_ReadPufHelprData </td>
          <td>(</td>
          <td class="paramtype">u32 *&#160;</td>
          <td class="paramname"><em>Address</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>This function reads the PUF helper data from eFUSE. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">Address</td><td>Pointer to data array which holds the PUF helper data read from eFUSEs.</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd><ul>
<li>XST_SUCCESS if reads successfully.</li>
<li>Errorcode on failure.</li>
</ul>
</dd></dl>
<dl class="section note"><dt>Note</dt><dd>This function only reads from eFUSE non-volatile memory. There is no option to read from Cache. </dd></dl>

<p>References <a class="el" href="group__xilskey__zynqmp__efuse.html#ga5ccf425dc11a9659dd31419233c1382b">XilSKey_ZynqMp_EfusePs_ReadRow()</a>, <a class="el" href="group__xilskey__zynqmp__efuse.html#ga32901f95760a2e693f484f5a57d1ad06">XilSKey_ZynqMp_EfusePs_SetTimerValues()</a>, <a class="el" href="group__xilskey__psefuse__error__codes.html#gga35d67e0a9db73e1fa64262f5eb8f9d6aa51b19122bd2d929bac2c23850fd31f43">XSK_EFUSEPS_ERROR_CONTROLLER_LOCK</a>, and <a class="el" href="xilskey__eps__zynqmp__hw_8h.html#abf43b17cdeb5ef29427835349fc8741d">XSK_ZYNQMP_EFUSEPS_PUF_ROW_UPPER_MASK</a>.</p>

<p>Referenced by <a class="el" href="xilskey__puf__registration__example_8c.html#ae66f6b31b5ad750f1fe042a706a4e3d4">main()</a>.</p>

</div>
</div>
<a class="anchor" id="ga5ccf425dc11a9659dd31419233c1382b"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">u32 XilSKey_ZynqMp_EfusePs_ReadRow </td>
          <td>(</td>
          <td class="paramtype">u8&#160;</td>
          <td class="paramname"><em>Row</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">XskEfusePs_Type&#160;</td>
          <td class="paramname"><em>EfuseType</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">u32 *&#160;</td>
          <td class="paramname"><em>RowData</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>This function returns particular row data directly from eFUSE array. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">Row</td><td>specifies the row number to read. </td></tr>
    <tr><td class="paramname">EfuseType</td><td>specifies the eFUSE type. </td></tr>
    <tr><td class="paramname">RowData</td><td>is a pointer to 32 bit variable to hold the data read from provided data</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>XST_SUCCESS - On success ErrorCode - on Failure </dd></dl>

<p>References <a class="el" href="group__xilskey__psefuse__error__codes.html#gga35d67e0a9db73e1fa64262f5eb8f9d6aa0c98a5e3fb9e7f9ba4feba35f2e7fd9f">XSK_EFUSEPS_ERROR_READ</a>, <a class="el" href="group__xilskey__psefuse__error__codes.html#gga35d67e0a9db73e1fa64262f5eb8f9d6aabcbe521939011f2d89555b7f781a1d79">XSK_EFUSEPS_ERROR_READ_NOT_DONE</a>, <a class="el" href="xilskey__eps__zynqmp__hw_8h.html#a9600c88345f2ca86156d134c33e7ae62">XSK_ZYNQMP_EFUSEPS_BASEADDR</a>, <a class="el" href="xilskey__eps__zynqmp__hw_8h.html#a98c0da736e1132e645c89dc4ebbb3c07">XSK_ZYNQMP_EFUSEPS_ISR_OFFSET</a>, <a class="el" href="xilskey__eps__zynqmp__hw_8h.html#abd5753c2cfa07b06f85076d548e7bc97">XSK_ZYNQMP_EFUSEPS_RD_ADDR_OFFSET</a>, and <a class="el" href="xilskey__eps__zynqmp__hw_8h.html#a7e3df7cb64618c1ca212af82e415174d">XSK_ZYNQMP_EFUSEPS_RD_DATA_OFFSET</a>.</p>

<p>Referenced by <a class="el" href="group__xilskey__zynqmp__efuse.html#ga5467284f0486d3afa7953eb51876757b">XilSKey_ZynqMp_EfusePs_CheckForZeros()</a>, <a class="el" href="group__xilskey__zynqmp__efuse.html#ga244ec0ae43d34ee6500c06dd91f9d372">XilSKey_ZynqMp_EfusePs_ReadPufHelprData()</a>, and <a class="el" href="group__xilskey__zynqmp__efuse.html#ga481698e87679ed2fbabb51ae433e2998">XilSKey_ZynqMp_EfusePs_WriteAndVerifyBit()</a>.</p>

</div>
</div>
<a class="anchor" id="gafe8ae7aba73e1e4b667aed0bad8f64aa"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">u32 XilSKey_ZynqMp_EfusePs_ReadSecCtrlBits </td>
          <td>(</td>
          <td class="paramtype">XilSKey_SecCtrlBits *&#160;</td>
          <td class="paramname"><em>ReadBackSecCtrlBits</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">u8&#160;</td>
          <td class="paramname"><em>ReadOption</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>This function is used to read the PS eFUSE secure control bits from cache or eFUSE based on user input provided. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">ReadBackSecCtrlBits</td><td>Pointer to the XilSKey_SecCtrlBits which holds the read secure control bits. </td></tr>
    <tr><td class="paramname">ReadOption</td><td>Indicates whether or not to read from the actual eFUSE array or from the eFUSE cache.<ul>
<li>0(XSK_EFUSEPS_READ_FROM_CACHE) Reads from eFUSE cache</li>
<li>1(XSK_EFUSEPS_READ_FROM_EFUSE) Reads from eFUSE array</li>
</ul>
</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd><ul>
<li>XST_SUCCESS if reads successfully</li>
<li>XST_FAILURE if reading is failed</li>
</ul>
</dd></dl>
<dl class="section note"><dt>Note</dt><dd>It is highly recommended to read from eFuse cache. Because reading from efuse may reduce the life of the efuse. And Cache reload is required for obtaining updated values for ReadOption 0. </dd></dl>

<p>References <a class="el" href="group__xilskey__psefuse__error__codes.html#gga35d67e0a9db73e1fa64262f5eb8f9d6aaa3e0ccc70663fc7ab1bcbc4308e48163">XSK_EFUSEPS_RD_FROM_EFUSE_NOT_ALLOWED</a>.</p>

<p>Referenced by <a class="el" href="xilskey__puf__registration__example_8c.html#ae66f6b31b5ad750f1fe042a706a4e3d4">main()</a>.</p>

</div>
</div>
<a class="anchor" id="gaf32df4375d96c29c860c68670fecba41"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">u32 XilSKey_ZynqMp_EfusePs_ReadSpkId </td>
          <td>(</td>
          <td class="paramtype">u32 *&#160;</td>
          <td class="paramname"><em>SpkId</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">u8&#160;</td>
          <td class="paramname"><em>ReadOption</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>This function is used to read SPKID from eFUSE or cache based on user's read option. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">SpkId</td><td>Pointer to a 32 bit variable which holds SPK ID. </td></tr>
    <tr><td class="paramname">ReadOption</td><td>Indicates whether or not to read from the actual eFUSE array or from the eFUSE cache.<ul>
<li>0(XSK_EFUSEPS_READ_FROM_CACHE) Reads from eFUSE cache</li>
<li>1(XSK_EFUSEPS_READ_FROM_EFUSE) Reads from eFUSE array</li>
</ul>
</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd><ul>
<li>XST_SUCCESS on successful read</li>
<li>ErrorCode on failure </li>
</ul>
</dd></dl>
<dl class="section note"><dt>Note</dt><dd>It is highly recommended to read from eFuse cache. Because reading from efuse may reduce the life of the efuse. And Cache reload is required for obtaining updated values for ReadOption 0. </dd></dl>

<p>References <a class="el" href="group__xilskey__psefuse__error__codes.html#gga35d67e0a9db73e1fa64262f5eb8f9d6aaa3e0ccc70663fc7ab1bcbc4308e48163">XSK_EFUSEPS_RD_FROM_EFUSE_NOT_ALLOWED</a>, <a class="el" href="xilskey__eps__zynqmp__hw_8h.html#a9600c88345f2ca86156d134c33e7ae62">XSK_ZYNQMP_EFUSEPS_BASEADDR</a>, and <a class="el" href="xilskey__eps__zynqmp__hw_8h.html#afd7667ec4d59b33d8bce9d17b3fd9e44">XSK_ZYNQMP_EFUSEPS_SPK_ID_OFFSET</a>.</p>

</div>
</div>
<a class="anchor" id="ga6e3922cb096a5f9d79ca4ebb3080ecae"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">u32 XilSKey_ZynqMp_EfusePs_ReadUserFuse </td>
          <td>(</td>
          <td class="paramtype">u32 *&#160;</td>
          <td class="paramname"><em>UseFusePtr</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">u8&#160;</td>
          <td class="paramname"><em>UserFuse_Num</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">u8&#160;</td>
          <td class="paramname"><em>ReadOption</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>This function is used to read a user fuse from the eFUSE or cache. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">UseFusePtr</td><td>Pointer to an array which holds the readback user fuse. </td></tr>
    <tr><td class="paramname">UserFuse_Num</td><td>A variable which holds the user fuse number. Range is (User fuses: 0 to 7) </td></tr>
    <tr><td class="paramname">ReadOption</td><td>Indicates whether or not to read from the actual eFUSE array or from the eFUSE cache.<ul>
<li>0(XSK_EFUSEPS_READ_FROM_CACHE) Reads from eFUSE cache</li>
<li>1(XSK_EFUSEPS_READ_FROM_EFUSE) Reads from eFUSE array </li>
</ul>
</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd><ul>
<li>XST_SUCCESS on successful read</li>
<li>ErrorCode on failure </li>
</ul>
</dd></dl>
<dl class="section note"><dt>Note</dt><dd>It is highly recommended to read from eFuse cache. Because reading from efuse may reduce the life of the efuse. And Cache reload is required for obtaining updated values for ReadOption 0. </dd></dl>

<p>References <a class="el" href="group__xilskey__psefuse__error__codes.html#gga35d67e0a9db73e1fa64262f5eb8f9d6aaa3e0ccc70663fc7ab1bcbc4308e48163">XSK_EFUSEPS_RD_FROM_EFUSE_NOT_ALLOWED</a>, <a class="el" href="xilskey__eps__zynqmp__hw_8h.html#a9600c88345f2ca86156d134c33e7ae62">XSK_ZYNQMP_EFUSEPS_BASEADDR</a>, and <a class="el" href="xilskey__eps__zynqmp__hw_8h.html#a073448ec30c4797a255e559267cabfe3">XSK_ZYNQMP_EFUSEPS_USER_0_OFFSET</a>.</p>

</div>
</div>
<a class="anchor" id="ga32901f95760a2e693f484f5a57d1ad06"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void XilSKey_ZynqMp_EfusePs_SetTimerValues </td>
          <td>(</td>
          <td class="paramtype">void&#160;</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>This function sets timers for programming and reading from eFUSE. </p>

<p>References <a class="el" href="xilskey__eps__zynqmp__hw_8h.html#a9600c88345f2ca86156d134c33e7ae62">XSK_ZYNQMP_EFUSEPS_BASEADDR</a>, <a class="el" href="xilskey__eps__zynqmp__hw_8h.html#ae1e1889129e7164534d9e7d4cb722280">XSK_ZYNQMP_EFUSEPS_CFG_OFFSET</a>, <a class="el" href="xilskey__eps__zynqmp__hw_8h.html#ac0bd825bd39728466589fd17f1b36484">XSK_ZYNQMP_EFUSEPS_TPGM_OFFSET</a>, <a class="el" href="xilskey__eps__zynqmp__hw_8h.html#aea8887d4faec0054424952b2f9d93eed">XSK_ZYNQMP_EFUSEPS_TRD_OFFSET</a>, <a class="el" href="xilskey__eps__zynqmp__hw_8h.html#adfa7de983a7b34abf8a80db48fda3dd8">XSK_ZYNQMP_EFUSEPS_TSU_H_CS_OFFSET</a>, <a class="el" href="xilskey__eps__zynqmp__hw_8h.html#ab819ddad8891f52368fcbf436fbe049e">XSK_ZYNQMP_EFUSEPS_TSU_H_PS_CS_OFFSET</a>, and <a class="el" href="xilskey__eps__zynqmp__hw_8h.html#a63a6cff16ba7c5a39b008afd4d8bac69">XSK_ZYNQMP_EFUSEPS_TSU_H_PS_OFFSET</a>.</p>

<p>Referenced by <a class="el" href="group__xilskey__zynqmp__efuse.html#ga1456bb1e5601881e5064de0adcfc999e">XilSKey_ZynqMp_EfusePs_CheckAesKeyCrc()</a>, <a class="el" href="group__xilskey__zynqmp__efuse.html#ga244ec0ae43d34ee6500c06dd91f9d372">XilSKey_ZynqMp_EfusePs_ReadPufHelprData()</a>, and <a class="el" href="group__xilskey__zynqmp__efuse.html#ga0bbd694e7fdef850812aeccbf6da42a8">XilSKey_ZynqMp_EfusePs_SetWriteConditions()</a>.</p>

</div>
</div>
<a class="anchor" id="ga0bbd694e7fdef850812aeccbf6da42a8"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">u32 XilSKey_ZynqMp_EfusePs_SetWriteConditions </td>
          <td>(</td>
          <td class="paramtype">void&#160;</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>This function sets all the required parameters to program eFUSE array. </p>
<dl class="section return"><dt>Returns</dt><dd>XST_SUCCESS - On success ErrorCode - on Failure </dd></dl>

<p>References <a class="el" href="group__xilskey__zynqmp__efuse.html#ga32901f95760a2e693f484f5a57d1ad06">XilSKey_ZynqMp_EfusePs_SetTimerValues()</a>, and <a class="el" href="group__xilskey__psefuse__error__codes.html#gga35d67e0a9db73e1fa64262f5eb8f9d6aa6ce361f6a2493eee8972b1a8c363d80a">XSK_EFUSEPS_ERROR_IN_TBIT_PATTERN</a>.</p>

<p>Referenced by <a class="el" href="group__xilskey__zynqmp__efuse.html#ga9491848827417a1fb9e25947487e27bf">XilSKey_Write_Puf_EfusePs_SecureBits()</a>, <a class="el" href="group__xilskey__zynqmp__efuse.html#ga5b46f3a03d5163f08b7782f669a78748">XilSKey_ZynqMp_EfusePs_Write()</a>, <a class="el" href="group__xilskey__zynqmp__efuse.html#ga67de13526ea1502e25b09f80094f2246">XilSKey_ZynqMp_EfusePs_WritePufAux()</a>, <a class="el" href="group__xilskey__zynqmp__efuse.html#gaf1587f5d17256fdbca55efa1cc0eeac0">XilSKey_ZynqMp_EfusePs_WritePufChash()</a>, and <a class="el" href="group__xilskey__zynqmp__efuse.html#ga5b392432af864665cf95a540ab576388">XilSKey_ZynqMp_EfusePs_WritePufHelprData()</a>.</p>

</div>
</div>
<a class="anchor" id="ga5b46f3a03d5163f08b7782f669a78748"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">u32 XilSKey_ZynqMp_EfusePs_Write </td>
          <td>(</td>
          <td class="paramtype">XilSKey_ZynqMpEPs *&#160;</td>
          <td class="paramname"><em>InstancePtr</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>This function is used to program the PS eFUSE of ZynqMP, based on user inputs. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">InstancePtr</td><td>Pointer to the XilSKey_ZynqMpEPs.</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd><ul>
<li>XST_SUCCESS if programs successfully.</li>
<li>Errorcode on failure</li>
</ul>
</dd></dl>
<dl class="section note"><dt>Note</dt><dd>After eFUSE programming is complete, the cache is automatically reloaded so all programmed eFUSE bits can be directly read from cache. </dd></dl>
<p>Check the temperature and voltage(VCC_AUX and VCC_PINT_LP)</p>

<p>References <a class="el" href="group__xilskey__cmn__crc.html#ga0552daa4e1f376eaac1360aba6d23930">XilSkey_CrcCalculation_AesKey()</a>, <a class="el" href="xilskey__utils_8c.html#a45d2897e5b27bd01b0b7e20ecea133af">XilSKey_Efuse_ConvertBitsToBytes()</a>, <a class="el" href="xilskey__utils_8c.html#a5c47bf0a861cbd2a3b6287b12bd633e5">XilSKey_EfusePs_ConvertBytesBeToLe()</a>, <a class="el" href="group__xilskey__zynqmp__efuse.html#gaba4a03dfa30f51139e6db70eac6583be">XilSKey_ZynqMp_EfusePs_CacheLoad()</a>, <a class="el" href="group__xilskey__zynqmp__efuse.html#ga1456bb1e5601881e5064de0adcfc999e">XilSKey_ZynqMp_EfusePs_CheckAesKeyCrc()</a>, <a class="el" href="group__xilskey__zynqmp__efuse.html#gabbf6b819a248562326af345bd43947c9">XilSKey_ZynqMp_EfusePs_Init()</a>, <a class="el" href="group__xilskey__zynqmp__efuse.html#ga56fb70c1fe6c73dc49f0a4366b891efe">XilSKey_ZynqMp_EfusePs_ReadPpk0Hash()</a>, <a class="el" href="group__xilskey__zynqmp__efuse.html#ga2d6c621edaf9dc92652e650a6faceaf9">XilSKey_ZynqMp_EfusePs_ReadPpk1Hash()</a>, <a class="el" href="group__xilskey__zynqmp__efuse.html#ga0bbd694e7fdef850812aeccbf6da42a8">XilSKey_ZynqMp_EfusePs_SetWriteConditions()</a>, <a class="el" href="xilskey__utils_8c.html#aa67d1e0eca8dccc57c20e7d69b496366">XilSKey_ZynqMp_EfusePs_Temp_Vol_Checks()</a>, <a class="el" href="group__xilskey__psefuse__error__codes.html#gga35d67e0a9db73e1fa64262f5eb8f9d6aae5d02c7b329fd3e6e76712cc822e0c90">XSK_EFUSEPS_ERROR_BEFORE_PROGRAMMING</a>, <a class="el" href="group__xilskey__psefuse__error__codes.html#gga35d67e0a9db73e1fa64262f5eb8f9d6aa6cab76eded6a371c6416b960a49030fb">XSK_EFUSEPS_ERROR_CMPLTD_EFUSE_PRGRM_WITH_ERR</a>, <a class="el" href="group__xilskey__psefuse__error__codes.html#gga35d67e0a9db73e1fa64262f5eb8f9d6aa51b19122bd2d929bac2c23850fd31f43">XSK_EFUSEPS_ERROR_CONTROLLER_LOCK</a>, <a class="el" href="group__xilskey__psefuse__error__codes.html#gga35d67e0a9db73e1fa64262f5eb8f9d6aafb01cdc39e379b9e4a1390f21081f03c">XSK_EFUSEPS_ERROR_PPK0_BIT_CANT_REVERT</a>, <a class="el" href="group__xilskey__psefuse__error__codes.html#gga35d67e0a9db73e1fa64262f5eb8f9d6aa5a85ddfb818ab6252934752598cdef1c">XSK_EFUSEPS_ERROR_PPK1_BIT_CANT_REVERT</a>, <a class="el" href="group__xilskey__psefuse__error__codes.html#gga35d67e0a9db73e1fa64262f5eb8f9d6aa48364ba8b27a6b28dde3ad4043fe2502">XSK_EFUSEPS_ERROR_SPKID_BIT_CANT_REVERT</a>, <a class="el" href="group__xilskey__psefuse__error__codes.html#gga35d67e0a9db73e1fa64262f5eb8f9d6aa034607eb313bb1dca1545036012b130a">XSK_EFUSEPS_ERROR_VERIFICATION</a>, <a class="el" href="group__xilskey__psefuse__error__codes.html#gga35d67e0a9db73e1fa64262f5eb8f9d6aa582aed56f7438d5a840b227e43b56bae">XSK_EFUSEPS_ERROR_WRITE_AES_KEY</a>, <a class="el" href="group__xilskey__psefuse__error__codes.html#gga35d67e0a9db73e1fa64262f5eb8f9d6aab5dbeb589e78612310fafdedd3e90d21">XSK_EFUSEPS_ERROR_WRITE_PPK0_HASH</a>, <a class="el" href="group__xilskey__psefuse__error__codes.html#gga35d67e0a9db73e1fa64262f5eb8f9d6aaf0ad4df13576f66d1c0f6db4141f0bae">XSK_EFUSEPS_ERROR_WRITE_PPK1_HASH</a>, <a class="el" href="group__xilskey__psefuse__error__codes.html#gga35d67e0a9db73e1fa64262f5eb8f9d6aade6ed8f5dad424294515463008df2a82">XSK_EFUSEPS_ERROR_WRITE_SPK_ID</a>, <a class="el" href="group__xilskey__psefuse__error__codes.html#gga35d67e0a9db73e1fa64262f5eb8f9d6aa1f2b77a28a4c9e17b6345252191548ad">XSK_EFUSEPS_ERROR_WRITE_USER0_FUSE</a>, <a class="el" href="group__xilskey__psefuse__error__codes.html#gga35d67e0a9db73e1fa64262f5eb8f9d6aa236e954cca52738d5fe10c2db640043e">XSK_EFUSEPS_ERROR_WRITE_USER1_FUSE</a>, <a class="el" href="group__xilskey__psefuse__error__codes.html#gga35d67e0a9db73e1fa64262f5eb8f9d6aaacb5cd2f128436ac08752510bb86aad9">XSK_EFUSEPS_ERROR_WRITE_USER2_FUSE</a>, <a class="el" href="group__xilskey__psefuse__error__codes.html#gga35d67e0a9db73e1fa64262f5eb8f9d6aadcfa43e3a116e3d8ea18cf18f9947b1e">XSK_EFUSEPS_ERROR_WRITE_USER3_FUSE</a>, <a class="el" href="group__xilskey__psefuse__error__codes.html#gga35d67e0a9db73e1fa64262f5eb8f9d6aa90aeced2e0e09c9bb1496a5149c48479">XSK_EFUSEPS_ERROR_WRITE_USER4_FUSE</a>, <a class="el" href="group__xilskey__psefuse__error__codes.html#gga35d67e0a9db73e1fa64262f5eb8f9d6aa7970f0e9d2fa264063880f69e8443c58">XSK_EFUSEPS_ERROR_WRITE_USER5_FUSE</a>, <a class="el" href="group__xilskey__psefuse__error__codes.html#gga35d67e0a9db73e1fa64262f5eb8f9d6aad1da451468fbd1b196bc653cde0a1b28">XSK_EFUSEPS_ERROR_WRITE_USER6_FUSE</a>, <a class="el" href="group__xilskey__psefuse__error__codes.html#gga35d67e0a9db73e1fa64262f5eb8f9d6aaf72349a1d00039c6179cb758cc1dfec1">XSK_EFUSEPS_ERROR_WRITE_USER7_FUSE</a>, <a class="el" href="xilskey__eps__zynqmp__hw_8h.html#a9600c88345f2ca86156d134c33e7ae62">XSK_ZYNQMP_EFUSEPS_BASEADDR</a>, and <a class="el" href="xilskey__eps__zynqmp__hw_8h.html#afd7667ec4d59b33d8bce9d17b3fd9e44">XSK_ZYNQMP_EFUSEPS_SPK_ID_OFFSET</a>.</p>

</div>
</div>
<a class="anchor" id="ga481698e87679ed2fbabb51ae433e2998"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">u32 XilSKey_ZynqMp_EfusePs_WriteAndVerifyBit </td>
          <td>(</td>
          <td class="paramtype">u8&#160;</td>
          <td class="paramname"><em>Row</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">u8&#160;</td>
          <td class="paramname"><em>Column</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">XskEfusePs_Type&#160;</td>
          <td class="paramname"><em>EfuseType</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>This function programs and verifies the particular bit of eFUSE array. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">Row</td><td>specifies the row number. </td></tr>
    <tr><td class="paramname">Column</td><td>specifies the column number. </td></tr>
    <tr><td class="paramname">EfuseType</td><td>specifies the eFUSE type.</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>XST_SUCCESS - On success ErrorCode - on Failure </dd></dl>

<p>References <a class="el" href="group__xilskey__zynqmp__efuse.html#ga5ccf425dc11a9659dd31419233c1382b">XilSKey_ZynqMp_EfusePs_ReadRow()</a>, <a class="el" href="group__xilskey__psefuse__error__codes.html#gga35d67e0a9db73e1fa64262f5eb8f9d6aa034607eb313bb1dca1545036012b130a">XSK_EFUSEPS_ERROR_VERIFICATION</a>, <a class="el" href="xilskey__eps__zynqmp__hw_8h.html#a9600c88345f2ca86156d134c33e7ae62">XSK_ZYNQMP_EFUSEPS_BASEADDR</a>, and <a class="el" href="xilskey__eps__zynqmp__hw_8h.html#ae1e1889129e7164534d9e7d4cb722280">XSK_ZYNQMP_EFUSEPS_CFG_OFFSET</a>.</p>

<p>Referenced by <a class="el" href="group__xilskey__zynqmp__efuse.html#ga9491848827417a1fb9e25947487e27bf">XilSKey_Write_Puf_EfusePs_SecureBits()</a>, <a class="el" href="group__xilskey__zynqmp__efuse.html#ga67de13526ea1502e25b09f80094f2246">XilSKey_ZynqMp_EfusePs_WritePufAux()</a>, and <a class="el" href="group__xilskey__zynqmp__efuse.html#gaf1587f5d17256fdbca55efa1cc0eeac0">XilSKey_ZynqMp_EfusePs_WritePufChash()</a>.</p>

</div>
</div>
<a class="anchor" id="ga67de13526ea1502e25b09f80094f2246"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">u32 XilSKey_ZynqMp_EfusePs_WritePufAux </td>
          <td>(</td>
          <td class="paramtype">const XilSKey_Puf *&#160;</td>
          <td class="paramname"><em>InstancePtr</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>This function programs eFUSE PUF auxiliary data. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">InstancePtr</td><td>Pointer to the XilSKey_Puf instance.</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd><ul>
<li>XST_SUCCESS if the eFUSE is programmed successfully.</li>
<li>Errorcode on failure</li>
</ul>
</dd></dl>
<dl class="section note"><dt>Note</dt><dd>To generate auxiliary data, please use XilSKey_Puf_Registration function. </dd></dl>

<p>References <a class="el" href="xilskey__utils_8c.html#a45d2897e5b27bd01b0b7e20ecea133af">XilSKey_Efuse_ConvertBitsToBytes()</a>, <a class="el" href="group__xilskey__zynqmp__efuse.html#gabbf6b819a248562326af345bd43947c9">XilSKey_ZynqMp_EfusePs_Init()</a>, <a class="el" href="group__xilskey__zynqmp__efuse.html#gad1be2e29f7eba2e556ac69870cd2e028">XilSKey_ZynqMp_EfusePs_ReadPufAux()</a>, <a class="el" href="group__xilskey__zynqmp__efuse.html#ga0bbd694e7fdef850812aeccbf6da42a8">XilSKey_ZynqMp_EfusePs_SetWriteConditions()</a>, <a class="el" href="xilskey__utils_8c.html#aa67d1e0eca8dccc57c20e7d69b496366">XilSKey_ZynqMp_EfusePs_Temp_Vol_Checks()</a>, <a class="el" href="group__xilskey__zynqmp__efuse.html#ga481698e87679ed2fbabb51ae433e2998">XilSKey_ZynqMp_EfusePs_WriteAndVerifyBit()</a>, <a class="el" href="group__xilskey__psefuse__error__codes.html#gga35d67e0a9db73e1fa64262f5eb8f9d6aa51b19122bd2d929bac2c23850fd31f43">XSK_EFUSEPS_ERROR_CONTROLLER_LOCK</a>, and <a class="el" href="group__xilskey__psefuse__error__codes.html#gga35d67e0a9db73e1fa64262f5eb8f9d6aaed84f9e28f19156244a8c8dfe014040f">XSK_EFUSEPS_ERROR_PUF_AUX_ALREADY_PROGRAMMED</a>.</p>

<p>Referenced by <a class="el" href="xilskey__puf__registration__example_8c.html#ae66f6b31b5ad750f1fe042a706a4e3d4">main()</a>.</p>

</div>
</div>
<a class="anchor" id="gaf1587f5d17256fdbca55efa1cc0eeac0"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">u32 XilSKey_ZynqMp_EfusePs_WritePufChash </td>
          <td>(</td>
          <td class="paramtype">const XilSKey_Puf *&#160;</td>
          <td class="paramname"><em>InstancePtr</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>This function programs eFUSE with CHash value. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">InstancePtr</td><td>Pointer to the XilSKey_Puf instance.</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd><ul>
<li>XST_SUCCESS if chash is programmed successfully.</li>
<li>An Error code on failure</li>
</ul>
</dd></dl>
<dl class="section note"><dt>Note</dt><dd>To generate the CHash value, please use XilSKey_Puf_Registration function. </dd></dl>

<p>References <a class="el" href="xilskey__utils_8c.html#a45d2897e5b27bd01b0b7e20ecea133af">XilSKey_Efuse_ConvertBitsToBytes()</a>, <a class="el" href="group__xilskey__zynqmp__efuse.html#gabbf6b819a248562326af345bd43947c9">XilSKey_ZynqMp_EfusePs_Init()</a>, <a class="el" href="group__xilskey__zynqmp__efuse.html#gaea3d5e3e09a52ed2a9a3027c065cca23">XilSKey_ZynqMp_EfusePs_ReadPufChash()</a>, <a class="el" href="group__xilskey__zynqmp__efuse.html#ga0bbd694e7fdef850812aeccbf6da42a8">XilSKey_ZynqMp_EfusePs_SetWriteConditions()</a>, <a class="el" href="xilskey__utils_8c.html#aa67d1e0eca8dccc57c20e7d69b496366">XilSKey_ZynqMp_EfusePs_Temp_Vol_Checks()</a>, <a class="el" href="group__xilskey__zynqmp__efuse.html#ga481698e87679ed2fbabb51ae433e2998">XilSKey_ZynqMp_EfusePs_WriteAndVerifyBit()</a>, <a class="el" href="group__xilskey__psefuse__error__codes.html#gga35d67e0a9db73e1fa64262f5eb8f9d6aa51b19122bd2d929bac2c23850fd31f43">XSK_EFUSEPS_ERROR_CONTROLLER_LOCK</a>, and <a class="el" href="group__xilskey__psefuse__error__codes.html#gga35d67e0a9db73e1fa64262f5eb8f9d6aa9096db2e0e44bf178f5966cb13f5c80e">XSK_EFUSEPS_ERROR_PUF_CHASH_ALREADY_PROGRAMMED</a>.</p>

<p>Referenced by <a class="el" href="xilskey__puf__registration__example_8c.html#ae66f6b31b5ad750f1fe042a706a4e3d4">main()</a>.</p>

</div>
</div>
<a class="anchor" id="ga5b392432af864665cf95a540ab576388"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">u32 XilSKey_ZynqMp_EfusePs_WritePufHelprData </td>
          <td>(</td>
          <td class="paramtype">const XilSKey_Puf *&#160;</td>
          <td class="paramname"><em>InstancePtr</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>This function programs the PS eFUSEs with the PUF helper data. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">InstancePtr</td><td>Pointer to the XilSKey_Puf instance.</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd><ul>
<li>XST_SUCCESS if programs successfully.</li>
<li>Errorcode on failure</li>
</ul>
</dd></dl>
<dl class="section note"><dt>Note</dt><dd>To generate PufSyndromeData please use XilSKey_Puf_Registration API </dd></dl>

<p>References <a class="el" href="xilskey__utils_8c.html#a45d2897e5b27bd01b0b7e20ecea133af">XilSKey_Efuse_ConvertBitsToBytes()</a>, <a class="el" href="group__xilskey__zynqmp__efuse.html#gabbf6b819a248562326af345bd43947c9">XilSKey_ZynqMp_EfusePs_Init()</a>, <a class="el" href="group__xilskey__zynqmp__efuse.html#ga0bbd694e7fdef850812aeccbf6da42a8">XilSKey_ZynqMp_EfusePs_SetWriteConditions()</a>, <a class="el" href="xilskey__utils_8c.html#aa67d1e0eca8dccc57c20e7d69b496366">XilSKey_ZynqMp_EfusePs_Temp_Vol_Checks()</a>, <a class="el" href="group__xilskey__psefuse__error__codes.html#gga35d67e0a9db73e1fa64262f5eb8f9d6aa51b19122bd2d929bac2c23850fd31f43">XSK_EFUSEPS_ERROR_CONTROLLER_LOCK</a>, and <a class="el" href="xilskey__eps__zynqmp__hw_8h.html#abf43b17cdeb5ef29427835349fc8741d">XSK_ZYNQMP_EFUSEPS_PUF_ROW_UPPER_MASK</a>.</p>

<p>Referenced by <a class="el" href="xilskey__puf__registration__example_8c.html#ae66f6b31b5ad750f1fe042a706a4e3d4">main()</a>.</p>

</div>
</div>
<a class="anchor" id="gaf92ce5c0ea8ffaa5e15fc9125ae3363f"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">u32 XilSkey_ZynqMpEfuseAccess </td>
          <td>(</td>
          <td class="paramtype">const u32&#160;</td>
          <td class="paramname"><em>AddrHigh</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const u32&#160;</td>
          <td class="paramname"><em>AddrLow</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>This function is used by PMUFW IPI call handler for programming eFUSE. </p>
<table class="doxtable">
<tr>
<th align="right">Register </th><th align="right">Read </th><th align="right">Write </th><th align="right">Size in bytes </th><th align="right">Offset  </th></tr>
<tr>
<td align="right">Version </td><td align="right">YES </td><td align="right">NO </td><td align="right">0x0 </td><td align="right">0x4 </td></tr>
<tr>
<td align="right">DNA </td><td align="right">YES </td><td align="right">NO </td><td align="right">0xc </td><td align="right">0xC </td></tr>
<tr>
<td align="right">User0 </td><td align="right">YES </td><td align="right">YES </td><td align="right">0x4 </td><td align="right">0x20 </td></tr>
<tr>
<td align="right">User1 </td><td align="right">YES </td><td align="right">YES </td><td align="right">0x4 </td><td align="right">0x24 </td></tr>
<tr>
<td align="right">User2 </td><td align="right">YES </td><td align="right">YES </td><td align="right">0x4 </td><td align="right">0x28 </td></tr>
<tr>
<td align="right">User3 </td><td align="right">YES </td><td align="right">YES </td><td align="right">0x4 </td><td align="right">0x2c </td></tr>
<tr>
<td align="right">User4 </td><td align="right">YES </td><td align="right">YES </td><td align="right">0x4 </td><td align="right">0x30 </td></tr>
<tr>
<td align="right">User5 </td><td align="right">YES </td><td align="right">YES </td><td align="right">0x4 </td><td align="right">0x34 </td></tr>
<tr>
<td align="right">User6 </td><td align="right">YES </td><td align="right">YES </td><td align="right">0x4 </td><td align="right">0x38 </td></tr>
<tr>
<td align="right">User7 </td><td align="right">YES </td><td align="right">YES </td><td align="right">0x4 </td><td align="right">0x3C </td></tr>
<tr>
<td align="right">Misc user </td><td align="right">YES </td><td align="right">YES </td><td align="right">0x4 </td><td align="right">0x40 </td></tr>
<tr>
<td align="right">Secure control </td><td align="right">YES </td><td align="right">YES </td><td align="right">0x4 </td><td align="right">0x58 </td></tr>
<tr>
<td align="right">SPK ID </td><td align="right">YES </td><td align="right">YES </td><td align="right">0x4 </td><td align="right">0x5C </td></tr>
<tr>
<td align="right">AES key </td><td align="right">NO </td><td align="right">YES </td><td align="right">0x20 </td><td align="right">0x60 </td></tr>
<tr>
<td align="right">PPK0 hash </td><td align="right">YES </td><td align="right">YES </td><td align="right">0x30 </td><td align="right">0xA0 </td></tr>
<tr>
<td align="right">PPK1 hash </td><td align="right">YES </td><td align="right">YES </td><td align="right">0x30 </td><td align="right">0xD0 </td></tr>
</table>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">AddrHigh</td><td>Higher 32-bit address of the XilSKey_Efuse structure. </td></tr>
    <tr><td class="paramname">AddrLow</td><td>Lower 32-bit address of the XilSKey_Efuse structure.</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>XST_SUCCESS - On success ErrorCode - on Failure </dd></dl>

<p>References <a class="el" href="group__xilskey__psefuse__error__codes.html#gga35d67e0a9db73e1fa64262f5eb8f9d6aa4efc2267dc8a8327076144477344d578">XSK_EFUSEPS_ERROR_ADDR_ACCESS</a>.</p>

</div>
</div>
</div><!-- contents -->
</div><!-- doc-content -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
	<p class="footer">&copy; Copyright 2015-2022 Xilinx, Inc. All Rights Reserved.</p>
	<p class="footer">&copy; Copyright 2022-2023 Advanced Micro Devices, Inc. All Rights Reserved.</p>
</div>
</body>
</html>
